Comment créer un rapport Crystal report en utilisant un Rapport vide
Ce que nous avons réussi à faire de façon relativement aisée en utilisant l’Assistant de création de rapports peut être aussi réalisé manuellement en utilisant un Rapport vide.
Le principal avantage de l’utilisation d’un rapport vide est que vous avez un contrôle complet sur le design du rapport depuis le début : l’Assistant rend la création du rapport assez simple, mais il a quelques limitations. Par exemple, créer un groupe en utilisant l’Assistant permet seulement des ajustements très simples du groupe ; l’utilisation d’un Rapport vide vous donne accès à toutes les fonctionnalités du Crystal Reports Designer pour configurer un groupe.
Tip: Cependant malgré ses limitations, l’Assistant est la façon la plus commode pour commencer un rapport dans la majorité des cas, et peut être tout ce qui est nécessaire pour produire un rapport utile. Même si la flexibilité d’un Rapport vide est nécessaire, il est souvent plus efficace de créer le rapport avec l’Assistant et d’ensuite le modifier manuellement.
En bref, il est généralement plus efficace de commencer la construction du rapport en utilisant l’Assistant de création de rapports.
L’exemple suivant montre rapidement les étapes de la création d’un Rapport vide. Nous voyons en détail comment éditer et modifier un rapport manuellement ici.
- Sur la page de démarrage de Crystal Reports Designer, sélectionnez Rapport vierge sous la rubrique Nouveau rapport
-OU-
Sélectionnez Fichier>Nouveau>Rapport vierge dans la barre de Menu.
La boîte de dialogue Expert Base de données s'affiche :
Tip: Cliquez sur Aide, disponible sur chaque écran de Expert Base de données, pour plus de détails sur chaque étape de la création d'un rapport.
Les étapes suivantes dépendent du type de rapport que vous créez :
Crystal ReportEMu utilise ODBC (Open Database Connectivity) pour se connecter à Crystal Reports et il est nécessaire de sélectionner la source de données ODBC pour le module pour lequel vous concevez le rapport.
- Double-cliquez sur Créer une nouvelle connexion.
- Double-cliquez sur ODBC (RDO) pour afficher la fenêtre ODBC (RDO).
- Sélectionnez le fichier de base de données approprié dans la fenêtre Nom de la source de données.
Dans cet exemple, nous sélectionnons EMu Catalogue :
- Cliquez sur Terminer pour fermer la fenêtre ODBC (RDO).
Un nouveau dossier, appelé Catalogue EMu, est maintenant répertorié sous le dossier ODBC(RDO) :
Le contenu de Catalogue EMu provient de :
C :\Users\[nom d'utilisateur]\AppData\Local\KESoftware\Reports\ecatalogue
qui est mis à jour chaque fois qu'un rapport est exécuté dans le module Catalogue dans EMu.
- Sélectionnez la ou les tables sous le dossier ODBC (RDO) à inclure dans le rapport.
Note: Comme nous l'avons vu, un ou plusieurs fichiers .csv sont générés lorsque nous exécutons un rapport dans EMu : le fichier .csv principal et un fichier .csv séparé pour tout champ étant une table de valeurs ou pour tout groupe (voir 2. Sélectionner les champs à inclure dans le rapport : l'onglet Champs pour plus de détails).
Dans cet exemple, deux fichiers .csv ont été générés : ecatalogue.csv (le fichier .csv principal) et Group1.csv.Pour inclure tous les fichiers .csv pour une source de données particulière, sélectionner la source requise sous le dossier ODBC (RDO) (par exemple EMu Catalogue) et cliquer le bouton flèche double .
-OU-
Pour déplacer un seul fichier .csv dans la liste Tables sélectionnées, sélectionner le fichier .csv (par exemple ecatalogue.csv) et cliquer le bouton flèche .
Dans cet exemple, nous déplaçons uniquement le fichier .csv principal, ecatalogue.csv, vers la liste Tables sélectionnées :
Group1.csv contient les valeurs des champs que nous avons regroupés dans EMu. Ces champs sont des tables de valeurs (ils peuvent contenir plus d'une valeur) et nous devons ajouter ces données à notre rapport en utilisant un sous-rapport. Lisez la remarque IMPORTANTE à l'écran Lien pour savoir pourquoi nous utilisons un sous-rapport pour inclure les valeurs dans Group1.csv plutôt que d'ajouter Group1.csv à la liste des Tables sélectionnées ici.
Note: L'onglet Liens sera ajouté à Expert Base de données si deux ou plusieurs fichiers .csv liés ont été ajoutés au rapport. Si tel est le cas, il est nécessaire de confirmer les relations à l'écran Liens.
- Cliquez sur OK pour continuer.
L’écran LiensNote: L'écran Mise en relation s’affiche seulement si deux ou plusieurs tables (fichiers .csv) ont été ajoutées à la liste Tables sélectionnées. Dans l’exemple Comment créer un rapport Crystal report en utilisant l’Assistant Crystal, une seule table a été ajoutée à la liste Tables sélectionnées donc l’écran Mise en relation ne se serait pas affiché. La démonstration ci-dessous est pour montrer comment utiliser l’écran Mise en relation mais les changements réalisés ici n’auront pas d’influence sur le reste de cet exemple.
L'écran Liens permet de configurer les liens qui associent les tables (les fichiers .csv) inclus dans le rapport. Les tables sont liées par des champs clés communs, dans cet exemple, ecatalogue_key :
Ce n’est pas l’endroit pour décrire en détail comment Crystal Reports gère les liens entre les tables, mais un aperçu rapide suffira.
Même si Crystal comprend que les tables sont associées entre elles, il ne les associe pas toujours de la manière la plus utile. En général, il est logique de penser que la direction d'un lien va de la table principale, en principe la table de gauche, vers une table de consultation. Dans l'exemple ci-dessus, Crystal n'a pas identifié ecatalogue_csv comme la table principale et, comme nous le verrons, il a appliqué un type de Jointure/Lien par défaut, la Jointure interne, qui n'est pas particulièrement utile.
Si nous sélectionnons Options de lien, nous voyons qu’il y a quatre Types de jointure possibles dans Crystal Reports.
Note: Le bouton Options de lien est grisé et inaccessible jusqu’à ce qu’un lien entre deux tables soit sélectionné (cliquer sur un lien pour le sélectionner – il deviendra bleu).
Les quatre Types de jointure sont :
- Jointure interne
- Jointure externe gauche
- Jointure externe droite
- Jointure externe complète
Chaque Type de jointure spécifie des conditions différentes pour déterminer quels enregistrements s’afficheront dans le rapport. Comme exemple, considérons le scénario Jointure interne : Table A est le table principale, et possède des liens avec les enregistrements de la Table B (la direction du lien est Gauche – Droite / Table A à Table B). Si le Type de jointure est Jointure interne, uniquement les enregistrements de la Table A qui ont un lien avec un enregistrement de la Table B seront listés dans le rapport. Si un enregistrement de la Table A n’est pas lié à un enregistrement de la Table B, il ne s’affichera pas dans le rapport.
Note: Le Type de jointure par défaut dans Crystal Reports est Jointure interne : il se peut que cela n’affiche pas tous les enregistrements que vous souhaitez inclure au rapport.
Dans cet exemple, pour que tous les enregistrements de la Table A soient listés dans le rapport (qu’ils soient ou non liés à un enregistrement de la Table B) il faut choisir l’option Jointure externe gauche.
Important: Si les enregistrements de la Table A sont liés à deux enregistrements ou plus de la Table B (en d’autres termes, le champ stocké dans la Table B est une table de valeurs, comme Autres noms : (Détails personnels) dans le module Personnes / Organisations), il est plus approprié de créer un sous-rapport pour ajouter les enregistrements dans la Table B. En utilisant la méthode décrite ci-dessous, si un enregistrement de la Table A est liée à trois enregistrements de la Table B, l'enregistrement de la Table A sera répertorié trois fois dans le rapport.
Par exemple, la Table A enregistre le nom de famille d'une Personne (Smith). La Table B enregistre les Autres noms de la Personne (Smithy, Smit) ; si nous associons les tables comme décrit ci-dessous, deux enregistrements apparaîtront dans le rapport avec : 1. Smith Smithy 2. Smith Smit. Si vous créez un sous-rapport pour la Table B et que vous l’associez à la Table A, notre enregistrement de la Table A ne sera répertorié qu'une seule fois, mais comprendra les deux valeurs de la Table B. Voir Comment ajouter un sous-rapport pour plus de détails.Pour corriger la direction des jointures et pour spécifier un Type de jointure approprié :
- Cliquez sur Effacer les liens.
Une boîte de dialogue s’affiche :
- Cliquez sur Oui pour continuer.
Les liens sont supprimés entre les différentes tables.
- Placez la table principale sur la gauche.
- Dans la table principale, sélectionnez le champ clé ecatalogue_key dans cet exemple) et faites-le glisser sur le champ équivalent dans chaque table de consultation :
Note: Les tables de consultation peuvent elles-mêmes être associées à d'autres tables de consultation en utilisant un autre champ clé. Il sera également nécessaire de spécifier ces liens.
- Sélectionnez le lien entre deux tables (il devient bleu).
- Cliquez sur Options de lien pour afficher la boîte de dialogue Options de lien.
- Sélectionner le bouton radio Type de jointure :
Note: Si vous avez un doute, utiliser l’option Jointure externe gauche : « Les résultats obtenus d'une jointure externe gauche incluent tous les enregistrements dont les valeurs du champ relié dans les deux tables correspondent exactement. Une ligne pour chaque enregistrement dans la table principale (gauche) dont la valeur du champ associé n'a aucune correspondance dans la table de consultation » est également incluse.
- Cliquer sur OK.
Si nécessaire, répétez l'opération pour tous les liens entre les tables.
Note: Note : les liens indiquent désormais la direction de la Jointure (de gauche à droite).
- Cliquez sur OK pour fermer l'Expert Bases de données.
Ensuite, nous concevons et formatons le rapport dans Crystal Reports Designer.
Rapport Crystal ADONote: Une édition Developer de Crystal Reports Designer est nécessaire pour créer un rapport Crystal ADO ou convertir un rapport Crystal pour utiliser ADO plutôt qu'ODBC. Plus de détails ici.
- Développez Créer une nouvelle connexion puis développez ADO.NET (XML).
L'écran suivant s'affiche :
- Dans le champ Chemin du fichier, localisez et sélectionnez le fichier xmldata.xml créé lors de la première exécution du rapport.
- Cliquez sur Terminer pour revenir à l'Expert Bases de données :
- Sélectionnez ligne et ajoutez-la au volet Tables sélectionnées :
- Cliquer sur OK.
Emplacement du fichierL'emplacement de ce fichier peut varier, mais il se trouve généralement dans :
C:\Users\[votre nom d'utilisateur]\AppData\Local\KESoftware\Reports\e[nom du module]
Par exemple, un rapport exécuté dans le module Personnes / Organisations, enregistrera le fichier xmldata dans :
C:\Users\[votre nom d'utilisateur]\AppData\Local\KESoftware\Reports\eparties
Tip: Vous trouverez plus de détails sur l'emplacement du fichier xmldata ici.
Tip: Dans la capture d'écran ci-dessus, Group1 contient les valeurs des champs regroupés lorsque les champs ont été ajoutés au rapport EMu. Ces champs sont des tables de valeurs (ils peuvent contenir plus d'une valeur). Il est nécessaire d'utiliser un sous-rapport pour ajouter ces données au rapport.
Les valeurs des champs du Catalogue sont contenues dans la table xml appelée ligne.
Crystal Report Designer s'affiche, prêt à concevoir votre rapport Crystal.
Note: Il est important de ne pas déplacer le
xmldata.xml
fichier car cela poserait des problèmes lors du partage du rapport avec d'autres utilisateurs.
- Si l'Explorateur de champs ne s'affiche pas dans le volet droit de Crystal Reports Designer :
Cliquez sur l'icône Explorateur de champ dans la Barre d'outils standard
-OU-
Sélectionnez Vue>Explorateur de champ dans la barre de menus.
La fenêtre Crystal Reports Designer devrait apparaître comme suit :
- Double-cliquez sur Champs base de données dans l'Explorateur de champs pour développer la liste des tables disponibles, et développez chaque table pour révéler tous les champs disponibles :
- Sélectionnez les champs à inclure dans le rapport et faites-les glisser vers la section Détails du rapport :
Placez tous les champs selon vos besoins :
- Pour visualiser votre rapport, sélectionnez Rapport>Actualiser les données du rapport (
F5
)-OU-
Cliquez sur Actualiser dans la barre d'outils.
- Cliquez sur OK lorsque Actualiser les données du rapport ? s'affiche :
Voir Comment modifier un rapport dans Crystal Designer pour plus de détails sur :
- Comment ajouter des groupes
- Comment ajouter un total et un résumé de champ (somme, moyenne, etc.)
- Comment ajouter une étiquette de champ
- Comment insérer un diagramme
- Comment ajouter une image, etc.
- Comment ajouter un sous-rapport
Le résultat final pourrait être similaire à :
- Sélectionnez Fichier>Enregistrer pour enregistrer le rapport.
Note: Lorsque vous sélectionnez Fichier>Enregistrer pour sauvegarder le rapport, vérifiez que l'option Enregistrer les données avec le rapport n'est pas cochée. Il n'est généralement pas nécessaire d’enregistrer les données avec le rapport (et la taille du fichier sera réduite). Cette option se trouve sous l'option Enregistrer du menu Fichier.
- La dernière étape est de réenregistrer le rapport dans EMu pour que le rapport puisse être lancé dans EMu.